home *** CD-ROM | disk | FTP | other *** search
- #include <string.h>
-
- #include "msgbase.hpp"
-
- /*=========================================================================*/
-
- MsgBase::MsgBase (void)
-
- {
- path[0] = '\0';
- msg_open (path);
- }
-
- MsgBase::MsgBase (char *_path)
-
- {
- strcpy (path, _path);
- msg_open (path);
- }
-
- MsgBase::~MsgBase (void)
-
- {
- msg_close ();
- }
-
- // locking services
-
- int MsgBase::Lock (void)
-
- {
- return (msg_lock (path));
- }
-
- int MsgBase::Lock (char *_semapath)
-
- {
- return (msg_lock (_semapath));
- }
-
- void MsgBase::Unlock (void)
-
- {
- msg_unlock ();
- }
-
-
- // manipulation services
-
- long MsgBase::MsgNr2RecNr (int msgnr)
-
- {
- return (msg_msgnr2recnr (msgnr));
- }
-
- unsigned int MsgBase::RecNr2MsgNr (long recnr)
-
- {
- return (msg_recnr2msgnr (recnr));
- }
-
- // read services
-
- void MsgBase::ReadInfo (void)
-
- {
- }
-
- int MsgBase::ReadHdr (long recnr)
-
- {
- return (msg_read_hdr (recnr, &hdr));
- }
-
- int MsgBase::ReadIdx (long recnr)
-
- {
- return (msg_read_idx (recnr, &MsgIdx));
- }
-
- int MsgBase::ReadToIdx (long recnr)
-
- {
- return (msg_read_toidx (recnr, &MsgToIdx));
- }
-
- M_TEXT MsgBase::ReadText (void)
-
- {
- return (msg_read_text (&hdr));
- }
-
- M_TEXT MsgBase::ReadText (long recnr)
-
- {
- if (!msg_read_hdr (recnr, &hdr))
- return (msg_read_text (&hdr));
- else
- return (NULL);
- }
-
- // write services
-
- void MsgBase::WriteInfo (void)
-
- {
- }
-
- int MsgBase::WriteHdr (long recnr)
-
- {
- return (msg_write_hdr (recnr, &hdr));
- }
-
- int MsgBase::WriteIdx (long recnr)
-
- {
- return (msg_write_idx (recnr, &MsgIdx));
- }
-
- int MsgBase::WriteToIdx (long recnr)
-
- {
- return (msg_write_toidx (recnr, &MsgToIdx));
- }
-
- int MsgBase::WriteText (void)
-
- {
- return (msg_write_text (&hdr, txt));
- }
-
- int MsgBase::WriteText (long recnr)
-
- {
- int result;
-
- result = msg_read_hdr (recnr, &hdr);
- if (!result)
- return (msg_write_text (&hdr, txt));
- else
- return (result);
- }
-
- int MsgBase::WriteNew (void)
-
- {
- hdr.board = board;
- return (msg_write_new (&hdr, txt));
- }
-
- int MsgBase::Kill (long recnr)
-
- {
- return (msg_kill (recnr));
- }
-
- // search services
-
- long MsgBase::First (void)
-
- {
- return (msg_firstinboard (board));
- }
-
- long MsgBase::Next (void)
-
- {
- return (msg_nextinboard (board));
- }
-
- long MsgBase::Last (void)
-
- {
- return (msg_lastinboard (board));
- }
-
- long MsgBase::Prev (void)
-
- {
- return (msg_previnboard (board));
- }
-
- long MsgBase::FirstTo (MSGTOIDX_RECORD *_user)
-
- {
- long recnr;
-
- recnr = msg_firstto (_user);
- if (recnr > -1)
- current = recnr;
- return (recnr);
- }
-
- long MsgBase::NextTo (void)
-
- {
- long recnr;
-
- recnr = msg_nextto (current);
- if (recnr > -1)
- current = recnr;
- return (recnr);
- }
-
- long MsgBase::LastTo (MSGTOIDX_RECORD *_user)
-
- {
- long recnr;
-
- recnr = msg_lastto (_user);
- if (recnr > -1)
- current = recnr;
- return (recnr);
- }
-
- long MsgBase::PrevTo (void)
-
- {
- long recnr;
-
- recnr = msg_prevto (current);
- if (recnr > -1)
- current = recnr;
- return (recnr);
- }
-